// 之前我们了解了值传递和引用传递，如果我想在函数里面或者方法里面修改结构体里面的属性
// 只能使用结构体指针或者指针方法
// 结构体默认是值引用，无论是方法，属性还是函数中都是。
package main

import "fmt"

type Student struct {
	Name string
	Age  int
}

func SetAge(info Student, age int) {
	info.Age = age
}

func SetAge1(info *Student, age int) {
	info.Age = age
}

func (s Student) SetAge(age int) {
	s.Age = age
}
func (s *Student) SetAge1(age int) {
	s.Age = age
}
func main() {
	s := Student{
		Name: "枫枫",
		Age:  21,
	}
	fmt.Println(s.Age)
	SetAge(s, 18)
	fmt.Println(s.Age)
	SetAge1(&s, 17)
	fmt.Println(s.Age)

	s.SetAge(18)
	fmt.Println(s.Age)
	s.SetAge1(18)
	fmt.Println(s.Age)
}
